/* eslint-disable */
// 字符串截取显示省略号
export function cutStr(str, L = 10, addEllipsis = false) {
  if (typeof str !== "string") {
    return str;
  }
  let result = "";
  let strlen = str.length; // 字符串长度
  let chrlen = str.replace(/[^\x00-\xff]/g, "**").length; // 字节长度

  if (chrlen <= L) {
    return str;
  }

  for (var i = 0, j = 0; i < strlen; i++) {
    var chr = str.charAt(i);
    if (/[\x00-\xff]/.test(chr)) {
      j++; // ascii码为0-255，一个字符就是一个字节的长度
    } else {
      j += 2; // ascii码为0-255 以外，一个字符就是两个字节的长度
    }
    if (j <= L) {
      // 当加上当前字符以后，如果总字节长度小于等于L，则将当前字符真实的+在result后
      result += chr;
    } else {
      // 反之则说明result已经是不拆分字符的情况下最接近L的值了，直接返回
      if (addEllipsis) {
        return result + "...";
      }
      return result;
    }
  }
}

// 日期格式化
export function formatDate(time, format = "yyyy-mm-dd") {
  if (!time) return "";
  let date = new Date(time);
  const formatObj = {
    y: date.getFullYear(),
    m: date.getMonth() + 1,
    d: date.getDate(),
    h: date.getHours(),
    i: date.getMinutes(),
    s: date.getSeconds(),
    a: date.getDay(),
  };
  const dateStr = format.replace(/(y|m|d|h|i|s|a)+/gi, (match, key) => {
    let value = formatObj[key];
    if (key === "a")
      return ["一", "二", "三", "四", "五", "六", "日"][value - 1];
    if (value < 10) {
      value = "0" + value;
    }
    return value || 0;
  });
  return dateStr;
}
